package com.ruoyi.student.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.student.domain.StudentBaseInfo;

import java.util.List;

/**
 * 学生基础信息Service接口
 *
 * @author linyang
 * @date 2024-01-31
 */
public interface IStudentBaseInfoService extends IService<StudentBaseInfo> {
    /**
     * 查询学生基础信息
     *
     * @param id 学生基础信息主键
     * @return 学生基础信息
     */
    public StudentBaseInfo selectStudentBaseInfoById(Long id);


    /**
     * 查询学生基础信息
     *
     * @param code 学号
     * @return
     */
    public StudentBaseInfo selectStudentBaseInfoByCode(String code);

    /**
     * 查询学生基础信息列表
     *
     * @param studentBaseInfo 学生基础信息
     * @return 学生基础信息集合
     */
    public List<StudentBaseInfo> selectStudentBaseInfoList(StudentBaseInfo studentBaseInfo);

    /**
     * 新增学生基础信息
     *
     * @param studentBaseInfo 学生基础信息
     * @return 结果
     */
    public int insertStudentBaseInfo(StudentBaseInfo studentBaseInfo);

    /**
     * 修改学生基础信息
     *
     * @param studentBaseInfo 学生基础信息
     * @return 结果
     */
    public int updateStudentBaseInfo(StudentBaseInfo studentBaseInfo);

    /**
     * 批量删除学生基础信息
     *
     * @param ids 需要删除的学生基础信息主键集合
     * @return 结果
     */
    public int deleteStudentBaseInfoByIds(Long[] ids);

    /**
     * 删除学生基础信息信息
     *
     * @param id 学生基础信息主键
     * @return 结果
     */
    public int deleteStudentBaseInfoById(Long id);


    /**
     * 修改学生生源地
     *
     * @param code
     * @param place
     * @return
     */
    public int editStudentSource(String code, String place);


    /**
     * 根据学号判断学生是否存在
     *
     * @param code 学号
     * @return
     */
    public Boolean checkExistByCode(String code);


    /**
     * 定时任务更新学生信息
     *
     * @param studentBaseInfo
     * @return
     */
    public int taskUpdateStudentInfo(StudentBaseInfo studentBaseInfo);


    /**
     * 根据辅导员工号查询学生数量
     * @param year 当亲毕业年份
     * @param counsellorCode 辅导员工号
     * @return
     */
    public Long selectStudentCountByCounsellorCode(String year,String counsellorCode);
}
